# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""

import os
import time
import re
import shutil
import datetime




def copysvnbak(proname):
    time1=0 #初始化比较时间的,主要用于存放备份文件中最大的时间
    directory = os.listdir("F:/svnbak/%s"%proname) #LIST具体的项目备份文件夹
    dnow=datetime.datetime.now()
    date=dnow.strftime("%Y-%m-%d")

    for filebak in directory:
        an=re.search('^weeklyb.*bak$',filebak)    #正则以weeklyb开头 bak结尾的文件

        if an:                          #如果匹配           
            statinfo=os.stat("F:/svnbak/%s/%s"%(proname,filebak)) #调用os模块的stat方法取得文件信息
            filemtime=time.localtime(statinfo.st_mtime) #把文件信息的时间转化为现在的时间表示方法

            if time1 < filemtime:    #比较大小，如果time1小，则time1被重新赋值
                time1=filemtime                
            else:
                pass
            
        else:

            pass
        
    print time1
    
    if time1.tm_mon < 10:
        strmon=str("0")+str(time1.tm_mon)		#拼接取得的最新文件日期部分 ，因为备份文件的月份为0X，这里需要重新拼接
    else:
        strmon=str(time1.tm_mon)
    if time1.tm_mday < 10:
        strmday=str("0")+str(time1.tm_mday)
    else:
        strmday=str(time1.tm_mday)
        
        
    datere=str(time1.tm_year)+'-'+strmon+'-'+strmday
    
    print datere
    
    if os.path.exists("G:/svnbak/%s"%date):                #判断是否存在备份的文件夹
        
        pass
 
    else:
        
	   os.makedirs("G:/svnbak/%s"%date)                  #如果没有，就建议一个makedirs是可以建立多层目录方法
	
	
    for filebak in directory:
        
        bn=re.search('^weeklyb.*%s.*$'%datere,filebak)        
        
        if bn:
            print filebak 
            shutil.copyfile("F:/svnbak/%s/%s"%(proname,filebak),"G:/svnbak/%s/%s"%(date,filebak))  #复制COPY文件。前面是源，后面是目的地。
        else:
            pass
    

    
   
    
for proname in ["Base","BPCG","BPCGIMS","CERTIFI","CLAIM","DIAP","FENGHUACY","GAC_FCA","GD_PRO",\
                "GT_MACKS","GTE_MEET","GTE_ZC","GTMC_EV","GTMCLP","GTMDS","IMS"]:                     #列表里面的是需要备份的项目
    
    copysvnbak(proname)
    
            
            
            
            
    
